Mini and mainframe computers are required to process, and hence store, large amounts of information. Fast processing of information requires that the central processing unit of these computers be able to transfer that information at a high rate of speed. The storage medium used to store information will typically be the limiting factor of the transfer rates.
The fastest storage medium in a computer is main memory which is often referred to as cache memory. This is usually in the form of semiconductor dynamic random access memory (DRAM). While main memory is very fast it is also very expensive relative to other forms of storage media and the amount of main memory that can be economically provided falls far short of the overall storage requirements. Main memory use is thus limited to short term storage of currently active information. The remaining information storage requirements are typically handled by peripheral storage devices.
Peripheral storage devices include magnetic tape storage devices, Direct Access Storage Devices (DASD), and optical storage devices. Each of these storage devices has a substantially greater storage density and lower cost than main memory. However, the time to access information from each of these storage devices is also much greater than the access time of information from main memory. For example, main memory is accessed electronically and no mechanical movement is required. Peripheral storage devices, on the other hand, require that a particular area of tape or disk first be positioned under a read/write head before information accessing can begin.
Some applications must store and retrieve such large amounts of information that many storage devices are required. In these applications the user typically requires a hierarchy of storage that includes some combination of main memory and one or more types of peripheral storage devices. The goal of the hierarchy is to obtain moderately priced high capacity storage while maintaining high speed access to the stored information. Hierarchical storage typically allows information to be transferred between main memory and one or more of the peripheral storage devices or between one or more peripheral storage devices and one or more other peripheral storage devices. Further storage is provided by maintaining libraries of data storage media such as tapes, magnetic disks or optical disks that can be mounted onto the existing peripheral devices. However, additional delays of accessing the information is introduced due to the necessity of having to manually locate and then load, for example, an optical disk onto an optical drive.
Automated storage libraries improve the access time to information stored on a tape, magnetic disk, or optical disk contained therein by automatically managing the storage of such tapes and disks. Automated storage libraries include a plurality of storage cells for storing library-resident data storage media, a robotic picker mechanism, and one or more internal peripheral storage devices. Each data storage medium may be contained in a cassette or cartridge housing for easier handling by the picker. The picker operates on command to transfer a data storage medium between a storage cell and an internal peripheral storage device within seconds. A significant improvement in access time to the desired information is provided since the picker mechanism operates much faster than manual transfers of storage media. Still more storage may be provided by including an external shelf for storing additional data storage media which may be manually inserted into the automated storage library.
The improved response time provided by automated storage libraries has made it feasible to store a large number of images as a data type for computer processing. Such images include engineering drawings, financial and insurance documents, medical charts and records, voice data, etc. These images are known as objects in order to identify them as data elements having an unconventional data structure. Text, a conventional data structure, is encoded on a storage medium in streams of binary 1's and 0's of fixed lengths.
An object, on the other hand, is a named stream of binary 1's and 0's of a known length which may or may not be encoded. The length of the stream of bits is not fixed but may vary from a few bytes to several megabytes.
Optical disks provide the highest density of the storage media and hence an automated optical library is most suitable for storing large object databases. Examples of optical disk libraries are given in U.S. Pat. Nos. 4,271,489, 4,527,262 and 4,614,474. Each optical disk in an optical library may consist of two logical volumes so that there is one volume per side. To access objects on a given volume, the disk containing that volume is retrieved from the library by the picker and mounted onto an internal optical drive. This may require that a presently mounted disk first be demounted and stored in the library by the picker.
Hundreds of millions of objects can be stored in an automated optical disk library. Efficient management is a necessity given the large number of objects handled. Object management software provides that management. Object Access Method software (OAM), a subcomponent of an IBM program product Multiple Virtual Storage/Data Facility Product software, (MVS/DFP), is object management software for managing the hundreds of millions of objects. OAM keeps an inventory of each object including its location information in an OAM object directory. Library Control System (LCS) is a subcomponent of OAM for processing a variety of requests affecting the optical disks. Processing the requests requires that the corresponding volume be mounted on an optical drive. If that volume is library-resident the picker automatically moves the optical disk cartridge from the storage area to an optical drive. If the volume is shelf-resident, then mounting is accomplished with human intervention. In cases of shelf-resident volumes, LCS issues a message to an operator regarding the shelf location and the optical drive designated to receive the volume.
LCS performs volume requests which are those requests that affect a volume as a whole. Volume requests include the requests for auditing or defragmenting a volume. A volume is audited by retrieving and mounting that volume for the purpose of verifying that the optical disk cartridge containing the volume is actually present within the library. Defragmenting a volume entails moving data recorded on a volume in order to reduce the number of free extents thereby increasing the size of the free extents. Each free extent consists of one or more adjacent sectors wherein no two free extents are contiguous. Increasing the size of the free extents increases the probability that a file will be able to occupy a single contiguous area. This in turn reduces the time required to read such a file since seek operations to different physical areas of the surface of the volume is not required when sequentially reading a file. Normally there will be relatively few volume requests pending for a given volume.
LCS also performs object requests which are requests to perform an operation on an object. Object requests include requests to read, write, or delete an object from a volume.
Write requests further include specific and nonspecific write requests. A specific write request identifies a specific volume to be written to. A nonspecific write request only identifies a storage group from which a volume may be chosen according to a LCS volume selection algorithm. A storage group is a collection of optical disk volumes having some specified attributes in common. Volume selection is determined by choosing the volume having the least amount of available space yet capable of accommodating the object or objects to be written.
In an IBM MVS/ESA IMAGEPLUS software environment, each object stored by LCS on optical disk volumes contains compressed image data representing an electronically scanned document consisting of one or more pages. A user request to display a document causes LCS to read the appropriate object from an optical disk volume (the object might reside in DASD or main memory in which instance it would be read therefrom). Typically, there are hundreds or thousands of interactive users at individual IMAGEPLUS workstations wherein document requests may be issued. As a result, a large number of read requests may be pending in LCS to read objects from a large number of the optical disk volumes. These optical disk volumes may be currently mounted in an optical disk drive or may be currently stored in the storage cells of an automated storage library.
Due to the large number of requests that may be queued up in an automated library it is necessary to manage the queued requests efficiently. The manner in which the queued requests are executed has a significant impact on the efficiency of information access. Efficiency can be improved by prioritizing requests according to predetermined attributes, for example, according to the information presently stored in main memory, on a first-in first-out basis, or according to the volumes already mounted in the peripheral devices. These prioritization techniques are described in commonly assigned Patent Application 07/317,493 filed Mar. 1, 1989, now U.S. Pat. No. 5,140,683 issued Aug. 18, 1992. Blount, et al., in U.S. Pat. No. 4,974,197 describe a method of improving the efficiency of writing a Volume Table of Contents (VTOC) and the associated objects to an optical disk by collecting a given number of predetermined objects such that a single access writes the objects and the corresponding VTOC entry.
Mounting a volume, even if done by the robotic picker, is very slow relative to the seek time of an object plus the writing, reading or deleting time of even large objects. Performing many mounts, therefore, substantially slows the servicing of the pending requests. The efficiency of an automated library could be improved by reducing the number of mounts for a given number of volume and object requests. Furthermore, if many users are waiting for their read requests to be processed, the order in which the requests are processed can substantially affect the average time each user must wait. For example, if many volumes are mounted which each have only one pending read request processed followed by the mounting of volumes having many pending read requests, the intervening mounting and demounting times of the volumes increases the average time that all users must wait for their requests to be serviced.
Thus, what is needed is an automated optical disk library that provides a method of prioritizing the order in which read requests are processed for reducing the average time a user waits when reading objects from optical disk volumes contained within the automated storage hierarchy.